Dense and Sparse Matrix Classes Using the C++ Standard Template Library
نویسنده
چکیده
The C++ programming language has undergone signiicant changes since its inception in the 1980's, but has now reached a relatively steady state. Standard C++ now includes a general library of container classes, the Standard Template Library (STL). These developments are rapidly changing the styles used in C++ class programming. The paper has dual purposes: It provides an introduction to STL for C++ programmers, and it develops an eecient matrix class library , built upon STL, which provides functionality useful in areas such as computational economics, nance, mathematical programming and statistics. This library, which is freely available, comprises a full set of vector and matrix operations using both dense and sparse implementations. The paper discusses approaches towards and pitfalls in constructing C++ concrete data types, and has references for further on-line information.
منابع مشابه
Parallel Extensions to the Matrix Template Library
We present the preliminary design for a C++ template library to enable the compositional construction of matrix classes suitable for high performance numerical linear algebra computations. The library based on our interface definition — the Matrix Template Library (MTL) — is written in C++ and consists of a small number of template classes that can be composed to represent commonly used matrix ...
متن کاملThe Matrix Template Library: A Generic Programming Approach to High Performance Numerical Linear Algebra
We present a unified approach for expressing high performance numerical linear algebra routines for large classes of dense and sparse matrices. As with the Standard Template Library [10], we explicitly separate algorithms from data structures through the use of generic programming techniques. We conclude that such an approach does not hinder high performance. On the contrary, writing portable h...
متن کاملGeneric Programming for High Performance Numerical Linear Algebra
We present a generic programming methodology for expressing data structures and algorithms for high-performance numerical linear algebra. As with the Standard Template Library [14], our approach explicitly separates algorithms from data structures, allowing a single set of numerical routines to operate with a wide variety of matrix types, including sparse, dense, and banded. Through the use of ...
متن کاملThe Matrix Template Library: A Unifying Framework for Numerical Linear Algebra
We present a uni ed approach for expressing high performance numerical linear algebra routines for a class of dense and sparse matrix formats and shapes. As with the Standard Template Library [7], we explicitly separate algorithms from data structures through the use of generic programming techniques. We conclude that such an approach does not hinder high performance. On the contrary, writing p...
متن کاملThe Iterative Solver Template Library
The numerical solution of partial differential equations frequently requires the solution of large and sparse linear systems. Using generic programming techniques like in C++ one can create solver libraries that allow efficient realization of “fine grained interfaces”, i. e. with functions consisting only of a few lines, like access to individual matrix entries. This prevents code replication a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999